#pragma once
#include <Rz/IObject.h>
//#include "IRenderDevice.h"

 RZ_CLASS_FWD_DECL3(Rz, Graphics, Render, IRenderDevice);

namespace Rz { namespace Graphics { namespace Render {

class IDeviceResource :
	virtual public IObject
{
	public:
		RZ_RTTI_INTERFACE(Rz::Graphics::Render, IDeviceResource);
		RZ_RTTI_IMPLEMENTS(IObject);
		RZ_RTTI_END;

		RZ_INLINE virtual const IRenderDevice* GetRenderDevice() const { return _renderDevice; }
		RZ_INLINE virtual IRenderDevice* GetRenderDevice() { return _renderDevice; }
		RZ_INLINE virtual void SetRenderDevice(IRenderDevice* renderDevice) { _renderDevice = renderDevice; }

	private:
		//Ptr<IRenderDevice> _renderDevice;
		IRenderDevice* _renderDevice;
};

} } }
